530 LOCATE 4,35:PRINT INT(F): IF F=0 THEN SOUND 99,0:BEEP
540 RETURN
550 GG1=INT(40-40*F/F0):IF GG1=G1 THEN GOTO 560 ELSE LINE(241,GG1)-(257,GG1),0
560 G1=GG1:GG2=INT(5+SY/(2.8+(S>ADLAND))):IF GG2<0 THEN GG2=0 ELSE IF GG2>40 THEN GG2=40
570 IF GG2=G2 THEN GOTO 580 ELSE LINE(273,GG2)-(289,GG2),3:IF G2<11 AND G2>4 THEN LINE(273,G2)-(289,G2),1 ELSE LINE(273,G2)-(289,G2),2
580 G2=GG2:GG3=INT(40-40*T/19):IF GG3=G3 THEN GOTO 590 ELSE LINE(304,GG3)-(319,GG3),3:IF G3<26 AND G3>14 THEN LINE(304,G3)-(319,G3),1 ELSE LINE(304,G3)-(319,G3),2
590 G3=GG3:IF F=0 THEN SOUND 99,0:BEEP
600 RETURN
610 REM $S1
620 '######## Check KEYBOARD for commands ############################
1160 LOCATE 11,1:PRINT"YOUR EXTRA FUEL MAKES YOUR SCORE = " S CHR$(13) CHR$(13) " (MAX. SCORE TO DATE IS " SCOREMAX " BY " INIT$ ")":GOTO 1040
1170 LOCATE 11,1:PRINT"YOUR SCORE IS NOW " S " !!!!!!" CHR$(13) "THIS IS THE HIGHEST SCORE UP TO NOW !!" CHR$(13) "TYPE IN 3 INITIALS FOR POSTERITY :"
1180 DEF SEG:POKE 106,0:INPUT "INITIALS: ",A$:INIT$=LEFT$(A$,3):OPEN "lander.scr" FOR OUTPUT AS #3:PRINT#3,SCOREMAX,INIT$:CLOSE:GOSUB 1000:RETURN
1190 GOSUB 1210:GOSUB 1220:GOSUB 1000:CLS:LOCATE 8,1:PRINT"ALMOST A GOOD LANDING BUT MUCH TOO FAST":LOCATE 10,2:PRINT"YOUR FALL RATE MUST BE LESS THAN "15-5*ADVAN:GOTO 1030
1200 GOSUB 1210:GOSUB 1220:GOSUB 1000:LOCATE 8,1:PRINT"GOOD LANDING, BUT PLEASE LAND ON 2 FEET!":GOTO 1030
1210 T=0:GOSUB 480:RETURN ' Show ship with no rocket blast.
1220 SOUND 99,0:FOR J=1 TO 3:FOR K=1000 TO 2000 STEP 20:SOUND K,0.182:NEXT:NEXT:S=INT(S*0.7):RETURN ' Crash sound
1270 '############### Play MUSIC ##########################################
1280 REM $S1
1290 SOUND 99,0:PLAY"MB":FOR J=C TO D:SOUND TUNE1(J,0),TUNE1(J,1)/2:IF TUNE1(J,0)><0 AND TUNE1(J,1)><1 THEN SOUND 32767,1
1300 NEXT
1310 RETURN'Above is "Stars and Stripes"
1320 SCREEN 0,1: IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
1330 COLOR 0,2,2:CLS:LOCATE 5,9:PRINT"YOUR SCORE IS NOW : " S:COLOR 7,2
1340 LOCATE 7,5:PRINT"YOU WILL NOW BE IN ADVANCED LANDER ! !":LOCATE 12,1:COLOR 0: PRINT"IF YOU MANOUVER THE LANDER THROUGH THE RED DOTS ABOVE THE LANDING FIELD WITH A"
1350 PRINT"FALL RATE LESS THAN 10, YOU WILL END THE LANDING IN ADVANCED-LANDER. THE LANDWILL BE ENLARGED TO ALLOW YOU TO MAKE A PRECISION LANDING. YOUR FINAL FALL RATE MUST BE LESS THAN ";
1360 COLOR 0:PRINT"-- 10 --",:COLOR 0:PRINT"FOR THE LANDING TO BE OK.":LOCATE 24,7,0:COLOR 7:PRINT"PRESS ANY KEY TO CONTINUE.";
1370 A$=INKEY$:IF A$="" GOTO 1370 ELSE GOTO 90
1380 REM $pa
1390 '###################### START PROGRAM #########################
1400 REM $S1
1410 DEF SEG=0:IF (109=PEEK (&H410))GOTO 1430' go to color screen if on Bw
1420 POKE &H410,(PEEK(&H410) AND &HCF) OR &H20:SCREEN 0
1430 KEY OFF:SCREEN 0,1:COLOR 0,2,2:WIDTH 40:CLS:LOCATE 4,12,0:PRINT "IBM IBM IBM"
1440 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
1450 COLOR 7,2:LOCATE 6,12,0:PRINT "Personal Computer"
1460 COLOR 4,0:LOCATE 9,9,0:PRINT CHR$(201)+STRING$(21,205)+CHR$(187)
1580 COLOR 0,2:CLS:PRINT CHR$(13) "The object is to successfully land the space-craft on the landing pad. This is done by changing the rocket thrust and direction using the four position keys."
1810 LAY(I)=LAY(I)+SQR(LAY(I))*(0.5-RND) 'add noise to land contour.
1820 IF((LAX(I)>BOT)AND(LAX(I)<(BOT+30)))THEN LAY(I)=198 ' landing field
1830 IF(LAY(I)>198)THEN LAY(I)=198
1840 NEXT
1850 NE=10:DIM EXPL(NE,1):FOR I=0 TO NE:READ EXPL(I,0),EXPL(I,1):NEXT'Explosion
1860 DATA 0,10,1,7,2,8,3,3,4,2,5,8,6,7,7,1,8,6,9,2,10,0
1870 DIM IBMX(75),IBMY(75) ' Get IBM Logo.
1880 FOR I=0 TO 75:READ IBMX(I):NEXT
1890 FOR I=0 TO 75 STEP 2:READ IBMY(I):IBMY(I+1)=IBMY(I):NEXT
1900 DATA 0,4,7,13.5,18,21.5,27,30,0,4,7,14.5,18,22.5,26,30,1,3,8,10,12.5,15,19,23,25.5,29,1,3,8,14.5,19,24,25,29,1,3,8,14.5,19,21,21.6,26.4,27,29,1,3,8,10,12.5,15,19,21,22.3,25.7,27,29,0,4,7,14.5,18,21,23,25,27,30,0,4,7,13.5,18,21,23.5,24.5,27,30
1910 DATA 0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7
1920 DIM MM(88),TUNE(150,1):FOR I=0 TO 6:MM(I)=32767:NEXT ' Get success tune.
1930 FOR I=7 TO 88: MM(I)=INT(36.8*(2^(1/12))^(I-6)):NEXT
1940 FOR I=1 TO 150:READ A,TUNE(I,1):TUNE(I,0)=MM(A):NEXT
1950 REM $s2
1960 'Blue Danube Waltz by J.S.Strauss
1970 REM $s1
1980 DATA 42,4,46,4,49,4,49,4,0,4,61,2,0,2,61,2,0,6,58,2,0,2,58,2,0,6,42,4,42,4
1990 DATA 46,4,49,4
2000 DATA 49,4,0,4,61,2,0,2,61,2,0,6,59,2,0,2,59,2,0,6,41,4,41,4,44,4,51,4,51,4
2010 DATA 0,4,63,2,0,2,63,2,0,6,59,2,0,2
2020 DATA 59,2,0,6,41,4,41,4,44,4,51,4,51,4,0,4,63,2,0,2,63,2,0,6,58,2,0,2,58,2
2030 DATA 0,6,42,4
2040 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2,66,2,0,6,61,2,0,2,61,2,0,6,42,4
2050 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2
2060 DATA 66,2,0,6,63,2,0,2,63,2,0,6,44,4,44,4,47,4,51,2,0,2,51,14,0,2,48,4
2070 DATA 49,4,58,16
2080 DATA 54,4,46,4,46,8,44,4,51,8,49,4,42,4,0,2,42,2,42,4,0,8,49,2,0,2,47,2
2090 DATA 0,6,49,2,0,2
2100 DATA 47,2,0,6,49,4,58,16,56,4,49,2,0,2,46,2,0,6,49,2,0,2,46,2,0,6,49,4
2110 DATA 56,16,54,4,49,2,0,2,47,2,0,6,49,2,0,2,47,2,0,6,49,4,58,16
2120 DATA 56,4,49,4,54,4,56,4,58,4,61,8,59,4,58,2,58,2,58,4,56,2,0,2,54,4,0,8
2130 DIM TUNE1(82,1):FOR I=1 TO 82:READ A,TUNE1(I,1):TUNE1(I,0)=MM(A):NEXT
2140 REM $s2
2150 '"STARS AND STRIPES FOREVER - SOUSA "
2160 REM $s1
2170 DATA 54,6,54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3
2180 DATA 51,3,51,6,50,3,51,3
2190 DATA 54,6,51,3,54,3,52,12,49,6,0,3,49,3,49,6,48,3,49,3
2200 DATA 49,6,48,3,49,3
2210 DATA 52,16,0,2,51,3,49,3,51,3,54,9,56,9,56,3,49,16,0,2,54,6
2220 DATA 54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3,51,3,51,6,50,3 ,51,3
2230 DATA 52,3,51,3,49,5,46,1,49,12,47,6,0,3,47,3,47,6,46,3,47,3,50,6,49,3,47,3
2240 DATA 59,15,0,3,47,3,49,3,51,3,54,1,0,2,47,3,49,3,51,3,54,1,0,2,42,3,44,5
2250 DATA 51,1,49,12,47,1
2260 ADVAN=0:GAUGE=1
2270 COLOR 0: LOCATE 18,2
2280 PRINT"Gravity = Vertical thrust of about 10.":COLOR 7,1:LOCATE 24,3:PRINT " Press any key to start the game.";
2290 COLOR 0,2:LOCATE 20,2:ADLAND=100:PRINT"Advanced-Lander starts above 100 points.";
2300 A$=INKEY$:IF A$="" GOTO 2300
2310 S=0:RETURN
2320 REM $S2
2330 '############## Get New SHIP picture #########################
2340 REM $S1
2350 ON INT(1.8+TOLD/10) GOSUB 2390,2530,2670 'Erase old picture.
2360 XOLD=X:YOLD=Y:TILTOLD=TILT:TOLD=T
2370 ON INT(1.8+T/10) GOSUB 2390,2530,2670 'Draw new picture.
2380 TOLD=T:NEWPIC=0:RETURN
2390 ON TILTOLD GOTO 2400,2410,2420,2430,2440,2450,2460,2470,2480,2490,2500,2510,2520
2400 PUT(XOLD,YOLD),M1:RETURN
2410 PUT(XOLD,YOLD),M2:RETURN
2420 PUT(XOLD,YOLD),M3:RETURN
2430 PUT(XOLD,YOLD),M4:RETURN
2440 PUT(XOLD,YOLD),M5:RETURN
2450 PUT(XOLD,YOLD),M6:RETURN
2460 PUT(XOLD,YOLD),M7:RETURN
2470 PUT(XOLD,YOLD),M8:RETURN
2480 PUT(XOLD,YOLD),M9:RETURN
2490 PUT(XOLD,YOLD),M10:RETURN
2500 PUT(XOLD,YOLD),M11:RETURN
2510 PUT(XOLD,YOLD),M12:RETURN
2520 PUT(XOLD,YOLD),M13:RETURN
2530 ON TILTOLD GOTO 2540,2550,2560,2570,2580,2590,2600,2610,2620,2630,2640,2650,2660
2540 PUT(XOLD,YOLD),R1:RETURN
2550 PUT(XOLD,YOLD),R2:RETURN
2560 PUT(XOLD,YOLD),R3:RETURN
2570 PUT(XOLD,YOLD),R4:RETURN
2580 PUT(XOLD,YOLD),R5:RETURN
2590 PUT(XOLD,YOLD),R6:RETURN
2600 PUT(XOLD,YOLD),R7:RETURN
2610 PUT(XOLD,YOLD),R8:RETURN
2620 PUT(XOLD,YOLD),R9:RETURN
2630 PUT(XOLD,YOLD),R10:RETURN
2640 PUT(XOLD,YOLD),R11:RETURN
2650 PUT(XOLD,YOLD),R12:RETURN
2660 PUT(XOLD,YOLD),R13:RETURN
2670 ON TILTOLD GOTO 2680,2690,2700,2710,2720,2730,2740,2750,2760,2770,2780,2790,2800
2680 PUT(XOLD,YOLD),RR1:RETURN
2690 PUT(XOLD,YOLD),RR2:RETURN
2700 PUT(XOLD,YOLD),RR3:RETURN
2710 PUT(XOLD,YOLD),RR4:RETURN
2720 PUT(XOLD,YOLD),RR5:RETURN
2730 PUT(XOLD,YOLD),RR6:RETURN
2740 PUT(XOLD,YOLD),RR7:RETURN
2750 PUT(XOLD,YOLD),RR8:RETURN
2760 PUT(XOLD,YOLD),RR9:RETURN
2770 PUT(XOLD,YOLD),RR10:RETURN
2780 PUT(XOLD,YOLD),RR11:RETURN
2790 PUT(XOLD,YOLD),RR12:RETURN
2800 PUT(XOLD,YOLD),RR13:RETURN
2810 REM $s2
2820 '################ Advanced-Lander Landing Field ##########################
2830 REM $S1
2840 SCREEN 1:COLOR 0,0:CLS:LY(1)=0
2850 IF ADJUST = 1 THEN OUT 980,2: OUT 981,43
2860 BEEP:LOCATE 1,1:PRINT"ADVANCED LANDER":PRINT"LANDING FALL":PRINT"LESS THAN -10-"